package com.class4.search_sort.exer1;

import java.util.Arrays;

/**
 * @ClassDescription: 案例：数组的缩容：
 * <p>
 * 现有数组 int[] arr={1,2,3,4,5,6,7}。
 * 现需删除数组中索引为4的元素。
 */
public class ArrayExer01_2 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7};
        int deleteIndex = 3;
//       方式一： 不新建数组方式
//        for (int i = deleteIndex; i < arr.length - 1; i++) {
//            arr[i] = arr[i + 1];
//        }
//        System.out.println(Arrays.toString(arr));
////        修改最后元素，设置为默认值
//        arr[arr.length - 1] = 0;


        //       方式一： 新建数组方式,新建的数组长度比原有数组长度少一个

        int[] newArr = new int[arr.length - 1];
        for (int i = 0; i < deleteIndex; i++) {
            newArr[i] = arr[i];
            System.out.println(arr[i]);
        }
        for (int i = deleteIndex; i < arr.length - 1; i++) {
            newArr[i] = arr[i + 1];
            System.out.println(arr[i + 1]);
        }
        arr = newArr;
        //遍历arr数组
//        普通方式：
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "\t");
        }
        System.out.println();
//        迭代for循环
        for (int j : arr) {
            System.out.print(j + "\t");
        }
        System.out.println();
//        使用Arrays工具类
        System.out.println(Arrays.toString(arr));
//        stream流方式
        Arrays.stream(arr).forEach(System.out::print);

    }
}
